home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-03-15 | 78.4 KB | 1,584 lines |
- ╔══════════════════════════════════════════╗
- ║ █▀▀▀▀▀▀█ █ █ █▀▀▀▀▀▀█ ║
- ║ █ █ █ █ ║
- ║ █ ▀▀██ █ ██ ▀▀▀▀▀▀██ ║
- ║ █ ██ █ ██ ▄ ██ ║
- ║ ████████ ████████ ████████ ║
- ║ ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ ║
- ║ General Unpack Shell ║
- ║ version 1.95 for DOS ║
- ╚══╤═════════════════════════════════════╤═╝
- │ Copyright (C) 1995 and written by │
- │ Johan Zwiekhorst │
- │ - ALL RIGHTS RESERVED - │
- └─────────────────────────────────────┘
-
-
- T A B L E O F C O N T E N T S
- *********************************
-
- 1. LEGAL STUFF
- The No-Nonsense Licence Statement
- Warranty
- Contact
- Cost and Payment
- What you should have received
-
- 2. INTRODUCTION
-
- 3. USAGE
- 3.1. General Usage under DOS
- SYSTEM REQUIREMENTS
- COMMAND-LINE PARAMETERS
- NOTE
- EXAMPLES
- EXIT CODES
- 3.2. Unpacking Mailarchives
- 3.3. Identifying Archive Types
-
- 4. BUILT-IN DEFINITIONS
- 4.1. Built-in Child Program Definitions
- 4.2. How To Define Other Unpackers
-
- 5. GUS & OTHER SHELLS
-
- 6. HOW GUS IDENTIFIES ARCHIVES
- 6.1. Recognition patterns as used by GUS
- 6.2. Record layout of ARC/ARC+/PAK
- 6.3. How GUS identifies SFX (self-extracting) archives
- 6.4. Mandatory order of scanning recognition patterns
-
- 7. RUNTIME MESSAGES
- [A] General information messages
- [B] Warning messages (non-fatal errors)
- [C] Fatal error messages
-
- 8. ACKNOWLEDGEMENTS
-
- 9. REVISION HISTORY
-
- ═══════════════════════════════════════════════════════════════════════════════
- ╒════════════════╕
- │ 1. LEGAL STUFF │
- ╘════════════════╛
-
- This software is copyrighted (C) 1989, 1990, 1991, 1992, 1993, 1994,
- 1995 and written by Johan Zwiekhorst, hereafter called the Author and
- Owner. All Rights Reserved.
-
- The No-Nonsense Licence Statement
- =================================
- This software and everything enclosed with it are protected by both
- Belgian copyright law and international treaty provisions.
- It is called "shareware".
-
- SHAREWARE software may be copied and distributed freely IF:
-
- * NO FEE IS CHARGED FOR USE, COPYING OR DISTRIBUTION
- (you may recover media and postage expenses, however)
-
- * IT IS NOT MODIFIED IN ANY WAY.
-
- It may be distributed ONLY in it's original, unmodified compressed
- package file. ~~~~~~~~~~
-
- This means you may not add comments to the compressed package file
- (also known as an archive file or simply an archive), nor may you
- delete files from or add files to the archive file, UNLESS YOU HAVE
- A WRITTEN PERMISSION TO DO SO.
-
- Converting the archive file to another compression method or another
- archive file format is allowed, provided that the above conditions
- are met.
-
- The original package as released by me is a self-extracting RAR
- type archive with authenticity verification. RAR is a Russian
- archiver that compresses very well. I made the archive self-
- extracting because I couldn't be sure that everyone would have
- RAR.EXE or UNRAR.EXE.
- At the time this is written, the latest version of RAR is 1.52, so
- look for RAR1_52.EXE. The small freeware UNRAR program is available
- in both a DOS and an OS/2 version. The DOS program can be found
- inside the RAR1_52.EXE package; the OS/2 program is available as a
- separate archive called UNRAR100.ZIP.
- Note, that recompressing the original GUS archive could result in a
- bigger archive.
-
-
- Warranty
- ========
- This software is provided AS IS without any warranty, expressed or
- implied, including but not limited to fitness for a particular
- purpose.
- IN NO EVENT SHALL THE AUTHOR/OWNER OF THIS PRODUCT BE LIABLE FOR
- ANY DIRECT OR CONSEQUENTIAL LOSS OR DAMAGES WHICH MAY HAVE ARISEN
- FROM THE USE OF THIS PRODUCT.
- If your local law does not permit any of the statements made above,
- or if you do not agree with any of them yourself, THEN YOU ARE NOT
- LICENCED TO USE THIS PROGRAM!
-
-
- Contact
- =======
- The Author can be reached via a Bulletin Board System (BBS) and
- electronic mail at the Tripod BBS.
-
- Phone lines:
-
- [due to a move, none are currently available]
-
- Network addresses:
-
- Internet jz@nfe.be
-
- Compuserve >INTERNET:jz@nfe.be
-
- FIDOnet 2:292/100
- 2:292/118
-
-
- Main support BBS:
- (please call this system while Tripod BBS is off-line)
-
- Tornado Belgium BBS, sysop Frank Van Uffelen
-
- Phone lines:
-
- +32-16-640582 V.34
- +32-16-640465 V.34
- +32-16-640466 V.32bis
-
- Network addresses:
-
- Internet fvu@nfe.be
-
- Compuserve >INTERNET:fvu@nfe.be
-
- FIDOnet 2:292/600
-
-
- The Owner can be contacted at the following address:
-
- Johan Zwiekhorst
- Dorpheidestraat 63
- 3590 DIEPENBEEK (Belgium)
- Phone [not yet available] during office hours, Central European Time.
-
-
- Cost and Payment
- ================
-
- COMMERCIAL
- ~~~~~~~~~~
- If you would like to use this product in a commercial or
- governmental situation, please contact the Owner at the address
- above. You will then learn the price of the product and a
- Commercial Licence Statement will be made available to you.
- The price of the product varies with the number of licences ordered.
-
- NON-COMMERCIAL
- ~~~~~~~~~~~~~~
- For all others, a small contribution is asked.
- This contribution supports the Author and encourages him to write
- more useful software and keep developing this product.
- Note that this kind of shareware products is developed entirely in
- the Author's leisure time and he receives absolutely no compensation
- for it, apart from what you as a user would pay him.
- I don't believe in crippling the software or otherwise annoying you
- into paying. If you want to keep using it but not pay for it, so be
- it. It's not a very nice attitude, but I'll live.
- Any natural person who really can't afford to pay, is hereby allowed
- to use it for free.
- (Note: if you can afford to buy cigarettes, beer or tickets to your
- local movie theatre regularly, you can also afford to pay for this
- software.)
- This software may also be used for free by those who have made a
- substantial contribution to the Fidonet community, as Vince Perriello
- and Bob Hartman have by creating the BinkleyTerm mailer. Here's to
- ya, guys!
- If you think you deserve to use this software for free as well, then
- write to me.
-
- You may pay whatever you feel this software is worth.
- If you pay at least U.S. $15 (BEF 500, NLG 30, DEM 25), you will
- receive a 3.5" floppy diskette with a personalized "registered"
- version of GUS.
- Immediately after receiving your payment, I will send you an acknow-
- ledgement and a list of the latest versions of all freeware I wrote,
- unless my postage and handling would cost me as much or more than
- what you paid.
-
- Payments to the Author can be sent in cash (no coins please!) to the
- address mentioned above or transferred to the following bank account:
-
- Bank Brussel Lambert (Belgium) - account number 335-0076382-89
-
- People outside Belgium: the cheapest way in which you can pay is
- as follows...
- Go to your bank and ask for one banknote of 500 Belgian franks.
- It will have a blue print. Put the banknote in an envelope together
- with a nice letter expressing your immense gratitude for creating GUS
- :-) and send it to me. Make sure the banknote is not visible through
- the envelope!
-
- ***NOTE THAT THIS IS FOR NON-COMMERCIAL SITUATIONS ONLY!
-
- For all payments made: please specify NAME and VERSION NUMBER of
- the product!
-
- Payments are valid for THREE sub-versions of the software.
- (The number before the dot in the version number indicates the main
- version, the digit right after the dot is the sub-version and the
- digit after that one indicates a patch or bugfix.)
- This means that if you paid for version 1.6x, your payment is valid
- until version 1.90 is released - then you should renew it.
-
- Consider this: GUS v1.00 was released in 1989 and GUS v1.95 in 1995.
- So we're talking about 10 sub-versions (0 to 9) in 6 years. If this
- licence had been valid from day one, you should have paid three times
- for GUS in these six years. That also means that GUS would cost you
- an average of about $7.50 per year. Not exactly backbreaking, is it?
-
- Contributions received thusfar for GUS:
-
- NON-COMMERCIAL COMMERCIAL
- ~~~~~~~~~~~~~~ ~~~~~~~~~~
- Belgium : 8 people (none)
- Canada : 1 person
- Italy : 1 person
- Netherlands : 1 person
- United Kingdom: 1 person
- United States : 2 people
-
- Impressive, huh? :-}
-
-
- What you should have received:
- ==============================
-
- You should have received the file
-
- GUS_195.EXE - (47275 bytes)
-
- with the following contents:
-
- ┌──────────┐ ┌─────┐ ┌─────────────────────────┐
- │ filename │ │bytes│ │ description │
- └══════════┘ └═════┘ └═════════════════════════┘
- FILE_ID .DIZ 357 Short description for BBS sysops.
- GUS .DOC 80328 This documentation.
- GUS .EXE 14978 The program file. CRC/32 = d26e8d16
- GUS_WCFG.PAS 7026 TP source for a program CRC/32 = b2068b2f
- that writes a new configur-
- ation into GUS.EXE.
-
- While viewing, testing or unpacking this self-extracting RAR archive,
- it should display the following message on your screen:
- ┌────────────────────────────────────────────┐
- │ Verifying authenticity information ... Ok │
- │ │
- │ Archive GUS_195.EXE │
- │ modified at 19:50:00 15 Mar 1995 │
- │ by Johan Zwiekhorst │
- └────────────────────────────────────────────┘
-
- You may also use the program VALIDATE from McAfee Associates for
- the purpose of checking the authenticity of the program file(s).
- It should produce the following if you're using VALIDATE v0.4:
-
- File Name: gus.exe gus_wcfg.pas
- Size: 14,978 7,026
- Date: 3-15-1995 3-15-1995
- File Authentication:
- Check Method 1 - CED2 7171
- Check Method 2 - 0EF3 0A9A
-
- and the following if you're using VALIDATE v2.00 and up:
-
- Validate version 2.00 Copyright (c) McAfee, Inc. 1994.
- All rights reserved. (408) 988-3832 EVALUATION COPY
- Directory of GUS\
-
- GUS EXE 14978 03-15-95 19:50 2D91 72E9
- GUS_WCFG PAS 7026 03-15-95 19:50 4DF9 74D0
-
- 3 file(s) were validated
-
-
- GUS is available for several operating systems:
-
- ┌──────┐ ┌────────┐ ┌─────────────────────────────┐
- │system│ │look for│ │comment │
- └══════┘ └════════┘ └═════════════════════════════┘
- DOS GUS_*.* current release: GUS_195.EXE
- OS/2 GUS2_*.* (will be available starting with v2.00)
- Win/NT GUSw_*.* (not yet available, but does anyone want this?)
-
-
- ╒═════════════════╕
- │ 2. INTRODUCTION │
- ╘═════════════════╛
-
- The General Unpack Shell, or GUS, identifies compressed file types
- and calls the correct unpacker in order to extract the files from
- them.
- Its main purpose is, of course, to take work out of YOUR hands.
- You can use GUS with its straight-forward and easy to remember
- commands instead of having to learn a new set of commands each time
- a new archiver sees the daylight.
-
- GUS will also work nicely in automated tasks, where any type of
- archive has to be uncompressed, or where a certain file should be
- added to any given archive.
-
- GUS was made to be command-line compatible with the ARCE.COM
- unpacker program by Vernon Buerg. This makes it possible for you
- to rename GUS.EXE to ARCE.COM and have it invoked by any program
- that expects both ARCE and SEA's ARC-type compressed files, so that
- such a program will in fact work with any archive format YOU
- choose. Ben Baker's MAKENL is but one example of such a program.
-
- GUS does not require you to fiddle with cumbersome and difficult
- configuration files: it's just a single EXE file. You copy it into
- your favourite utility directory and you can immediately start
- using it, no hassles at all.
-
-
- ╒══════════╕
- │ 3. USAGE │
- ╘══════════╛
-
- GUS assumes you have located all archiver programs it has to invoke
- somewhere in your system PATH.
- GUS is small and it will only occupy about 30K while shelling out
- to other programs, which should leave more than enough memory for
- those archiver programs.
-
- 3.1. General Usage under DOS
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- SYSTEM REQUIREMENTS:
- --------------------
- GUS will run on any IBM PC compatible computer running DOS 3.0 or
- greater, provided that at least 32K plus the memory needed by the
- largest archiver program to invoke is available.
-
- COMMAND-LINE PARAMETERS:
- ------------------------
- As said before, GUS is command-line compatible with ARCE.
- Hence, the general syntax is:
-
- GUS «compressed_filespec» [filespec(s)] [target_path] [switch(es)]
-
- (Entries enclosed within [] are optional, those within « » are
- mandatory. The [] and « » signs serve to indicate this only and
- should never be typed!)
-
- «compressed_filespec» ::= this specifies where to find the
- compressed file. If an extension
- is not given, GUS will assume '.*'.
- Currently, the following archive types
- are supported: ARC and ARC+, ARJ, DWC,
- HA, HAP, HPK, HYP, LZH (both LHarc and LHA),
- PAK, RAR, SQZ, UC2, ZIP and ZOO.
-
- [filespec(s)] ::= specifies which files should be
- unpacked. You may give more than one
- file specification, all of which may
- contain wildcards.
-
- [target_path] ::= specifies where to locate the unpacked
- files. In order to allow GUS to be as
- flexible as possible, the ordering of
- the file specifications and the target
- path is not important. You may define
- the target path first and then the
- files to be extracted. It is even
- allowed to put the target path in the
- middle of a number of specifications of
- files to extract! If you give more
- than one directory, GUS will ignore all
- but the last.
-
- [switch(es)] ::= specifies one or more of the following
- switches...
- /D : Delete archive after successful unpacking
- /I : Identify only, don't shell out (see 3.3 below)
- /M : unpack Mailarchives only (see 3.2 below)
- /N : do Not use embedded path while extracting
- (for the sake of compatibility with ARCE, /5 may also be
- used)
- /P : Print file(s) on standard output device
- /Q : Quiet mode, suppresses shell output
- /R : Replace existing files
- /S : Scan for viruses in unpacked files
- /T : Test archive integrity
- /V : View archive contents
- /Bdir : Bad archives will be moved to the specified directory
- /Gpswd : supply password 'pswd' for Garbled archive
-
- All parameters have to separated by at least one blank. Switches
- may be joined together without spaces, but the '/' character must
- be present for each switch. GUS does not support the dash '-'
- instead of the slash '/'.
- Options may be given in no matter what case. Only the Delete option
- _has_ to be in uppercase for safety reasons.
-
- NOTE:
- -----
- Consistent with ARCE's behaviour, GUS will create any directories
- contained within an archive if they do not exist. Both ARCE and GUS
- have a commandline switch with which you can prevent this and have
- them extract to the current directory.
- If you are using the /M (mail archive) switch however, use of the
- /N (No embedded paths) switch is automatically assumed and unpacking
- will always be done in the specified inbound mail directory.
- With /M, the option /D (Delete archive after successful unpacking) is
- also automatically selected.
- The /N switch is equally automatically invoked with /P (print) and /T
- (test).
- Since SEA's XARC program cannot list the directory of an ARC+ (A7+)
- archive, GUS will switch to the program configured for the regular
- ARC type instead in order to execute the View Contents command.
-
- EXAMPLES:
- ---------
- 1) Extract all files from an archive CFILE.ANY:
- > GUS CFILE.ANY
-
- 2) Extract all *.COM and *.EXE files from an archive UTILS.ANY
- into a target directory D:\Utils, replacing all existing ones
- and performing a virus scan on the unpacked files:
- > GUS UTILS.ANY *.COM *.EXE D:\UTILS /R/N/S
-
- 3) A batchfile LA.BAT which will list any text file inside any
- archive:
- LA.BAT: @echo off
- GUS %1 %2 %3 %4 %5 %6 %7 %8 %9 /P|LIST/S
-
- Now you can use this: LA KBUI_202 *.DOC
-
- 4) Test the integrity of all archives in the directory F:\Arcs
- > GUS F:\ARCS\* /T
-
- 5) Unpack all ZIPfiles PW*.ZIP protected with password JiMmY into
- the directory D:\PWS, not replacing any existing files and using
- embedded paths, if any:
- > GUS PW*.ZIP D:\PWS /GJiMmY
-
- EXIT CODES:
- -----------
- GUS will yield an errorlevel of 0 if all operations succeeded or
- if only non-fatal errors (warnings) occurred.
- If something's wrong, it will pass on the errorlevel returned by
- the child program invoked.
- If the child program could not be started, GUS will return
- errorlevel 202 = no such program file found in PATH
- 203 = non-existing directory
- 204 = too many open files (increase FILES=... parameter
- in your CONFIG.SYS file)
- 205 = access denied
- 206 = invalid handle
- 208 = not enough memory to start the child program
- 210 = invalid environment
- 211 = invalid format
- 218 = no more files
- If the child program could be started but something else is wrong,
- GUS will return
- errorlevel 1 = for all errors not reported in the list below
- 220 = no such (mail) directory
- 221 = no such file(s)
- 222 = the last archive file handled is bad or of
- a type unknown to GUS and the unpacker program
- (if at all started) returned an errorlevel of 0
- 255 = bad configuration data appended to GUS.EXE
-
- Note, that GUS will not be able to search the PATH environment
- variable after the 255th character, if your PATH should be that long.
-
-
- 3.2. Unpacking Mailarchives
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~
- If you are a BBS SysOp or a Point connected to a Fidonet Technology
- compatible electronic mail network, you receive mail packets
- compressed and bundled within mailarchives. You obviously need to
- unpack those mailarchives.
- You can do that in two ways:
-
- α) Have your mailprocessor call GUS to unpack the mailarchives.
-
- + If your mailprocessor allows you to specify which unpacker it
- should invoke to decompress mailarchives, have it call GUS.
- Example for ConfMail:
- > CM IMPORT AREAS.BBS -K -N -F Conf.Imp -A GUS
- This approach has the disadvantage that GUS will create any
- directories embedded in the archive, should these not exist.
- Another disadvantage is, that the mailprocessor is still in memory.
- This occupies a lot more memory than is necessary.
-
- + If your mailprocessor does not allow you to specify which
- unpacker to use, it will most likely expect ARCE or PKXARC/
- PKUNPAK. Rename GUS.EXE to ARCE.COM or PKXARC.EXE or
- PKUNPAK.EXE, whatever your mailprocessor wants.
- If your mailprocessor wants to use an unpacker that needs a
- specific decompress command (like PAK E Archive), you cannot
- have it call GUS, since GUS would interpret its first
- command-line argument as the archive name.
- Use the method described in the next paragraph to have GUS
- unpack your mailarchives BEFORE your mailprocessor is started.
- Since your mailprocessor will only see mail packets then and no
- mailarchives, there will be no problem.
-
- ß) Have GUS unpack all mailarchives BEFORE you invoke your
- mailprocessor.
- --> This is the preferred method. <--
- You do this by starting GUS with the following command-line:
-
- GUS «Inbound_directory» /M
-
- Instead of the archive name, you specify the path to the
- directory where your inbound mail is located.
- Suppose your inbound directory is D:\Opus\NetFiles. GUS will
- unpack all mailarchives in that directory with the following
- command:
- > GUS D:\OPUS\NETFILES /M
-
- After a mailarchive has been unpacked succesfully, GUS will
- delete it automatically.
- If a mailarchive cannot be unpacked succesfully, then GUS will
- create a subdirectory BADARC.GUS in your inbound directory and
- move that mailarchive to it. This allows you to inspect the
- problematic mailarchives later on while retaining their original
- name. Other unpack shells always rename a faulty archive to
- BADARC.001, which makes it very difficult if you would like to
- restore the archive to its original name after you have
- inspected and maybe repaired it. I didn't like that procedure,
- so I decided to let GUS move problematic archives to a special
- subdirectory instead. Let me know how you feel.
-
-
- 3.3. Identifying Archive Types
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- With the /I switch, you can have GUS simply report which archive
- type is at hand and do nothing else.
- This switch can be used just to get a list of archive types, like
- this:
- > GUS J:\Outbound\*.MO? /I
-
- Type Archive Filename
- ---- ----------------
- LZH J:\OUTBOUND\0009FE64.MO1
- ??? J:\OUTBOUND\8FDCB1E2.MO1
- ZIP J:\OUTBOUND\8FDCB243.MO0
- ARJ J:\OUTBOUND\FF24FFE9.MO0
- LZH J:\OUTBOUND\8FDCB241.MO0
-
- GUS yields something like the above list. The '???' means that GUS
- was unable to determine the archive type, possibly because it isn't
- an archive at all. In this case, it was a zero-length file.
-
- A much more useful way of using this switch is to determine the
- type of just one archive and act upon that. For instance, to add a
- file to any archive that comes along.
-
- If used with /I, GUS will return an errorlevel from 0 to 15,
- indicating the archive type.
-
- Archive Type: Unknown ARC ARC+ ARJ DWC HA HAP HPK HYP LZH PAK
- Errorlevel : 0 1 2 3 4 5 6 7 8 9 10
- Archive Type: RAR SQZ UC2 ZIP ZOO
- Errorlevel : 11 12 13 14 15
-
- ATTENTION! These errorlevels will be returned ONLY if /I is used and
- ~~~~~~~~~~ NO OTHER values are possible then.
-
- Example: suppose you want to add a header text LOGO.TXT to ZIP and
- ARJ files, and leave other archive types alone.
- These batchfile instructions will take care of that:
-
- GUS %1 /I
- if not errorlevel 15 if errorlevel 14 goto IsZIP
- if not errorlevel 4 if errorlevel 3 goto IsARJ
- goto Finish
- :IsZIP
- PKZIP -z %1 <LOGO.TXT
- goto Finish
- :IsARJ
- ARJ c -zLOGO.TXT %1
- :Finish
-
- Please be advised that the errorlevel codes assigned to each archive
- type may change! If a new archive type is added to GUS, its extension
- will be merged into the list shown above so that the order of the
- extensions is alphabetical. If you don't like this and would rather see
- new types simply be added to the end of the list, let me know. I will
- comply with your wishes if enough people feel like that.
- At this time, I like to have an alphabetical list and so do most of the
- people I asked about this.
-
-
- ╒═════════════════════════╕
- │ 4. BUILT-IN DEFINITIONS │
- ╘═════════════════════════╛
-
- 4.1. Built-In Child Program Definitions
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- The following child programs are defined by default within GUS.EXE:
-
- α] Virus Scanner/Detector
- ╔════════════╤═════════╗
- ║Program │Options ║
- ╟────────────┼─────────╢
- ║SCAN .EXE│. /NOMEM ║
- ╚════════════╧═════════╝
- This is the program from McAfee, Inc. The options direct it to scan
- the current directory only (which will be the target directory in
- which the archive was unpacked by the time the detector is called),
- but not to scan the computer's memory for viruses.
-
- ß] Archive Unpackers
- ╔════╤════════════╤═══════╤═══════╤═══════╤═════╤═════╤═════╤════════╗
- ║Type│Program │Extract│Replace│Display│Test │View │Path │Password║
- ╟────┼────────────┼───────┼───────┼───────┼─────┼─────┼─────┼────────╢
- ║ARC │PKUNPAK .EXE│-n │-r │-c │-t │-v │*****│g ║
- ║A7+ │XARC .EXE│ │/o │***** │*****│*****│*****│/g ║
- ║ARJ │ARJ .EXE│e -uy │e -y │p │t │l │<x │─g ║
- ║DWC │DWC .EXE│xow │xw │p │t │v │r │g ║
- ║HA │HA .EXE│et │ety │***** │t │l │<x │***** ║
- ║HAP │PAH .EXE│e │e │***** │**** │l │*****│***** ║
- ║HPK │HPACK .EXE│x -on │x -oa │p │t │v │-da │-c ║
- ║HYP │HYPER .EXE│-x │-xo │***** │*****│-v │p │***** ║
- ║LZH │LHA .EXE│e /m+ │e /m+c+│p /m+ │t /m+│l │x+ │***** ║
- ║PAK │PAK .EXE│e/WO │e/WA │p │t │l │/PATH│/g= ║
- ║RAR │UNRAR .EXE│e -o- │e -o+ │p │t │l │<x │-p ║
- ║SQZ │SQZ .EXE│e /o0 │e /o1 │p │t │l │<x │***** ║
- ║UC2 │UC .EXE│E │E -F │$PRF │T │V │-S │***** ║
- ║ZIP │PKUNZIP .EXE│-n │-o │-c │-t │-v │-d │-s ║
- ║ZOO │ZOO .EXE│e:O │e:OS │e:p │e:N │lC │// │***** ║
- ╟────┼────────────┼───────┼───────┼───────┼─────┼─────┼─────┼────────╢
- ║ 3 │ 12 │ 10 │ 10 │ 10 │ 10 │ 10 │ 5 │ 5 ║
- ╚════╧════════════╧═══════╧═══════╧═══════╧═════╧═════╧═════╧════════╝
- The numbers above indicate the number of characters provided for
- each string.
-
- Note that Extract, Replace, Display, Test and View are COMMANDS,
- while Path and Password are OPTIONS. The difference is, that an
- OPTION is always combined with a COMMAND and cannot be used alone.
- If the first character of the Path option is a `<', however, it means
- that the second character should be used to replace the first command
- string character. This is, for instance, the case with ARJ, HA, RAR and
- SQZ, who all need the `e' command to be replaced with `x' in order to
- extract files while using embedded path information.
-
- All spaces means that that particular program does not need any
- parameters for that particular command.
-
- All stars means that that particular program does not support that
- command or that option.
-
- NOTE: the $PRF command for the UC rev. 2 archiver will actually print
- files to the printer and not to StdOut as we would like to have it.
- The solution is easy enough, though. UC.EXE will call a batchfile
- U2_PRINT.BAT to actually do the printing. Rename the current
- batchfile to *.OLD and create a new U2_PRINT.BAT containing only
- the following three lines:
-
- @echo off
- echo.
- type %1
-
- That's all! (Notice no space between `echo' and `.' in the second
- line.) Now the output will go to StdOut.
-
- ATTENTION! When encountering an ARC sfx made by SEA's MKSARC program,
- GUS will identify it correctly, but PKUNPAK can't handle this sfx and
- will therefore exit with an error. If you expect to handle a lot of
- MKSARC sfx files, then you'd better replace PKUNPAK by ARC 6.02 in
- GUS' configuration segment.
-
- You may want to redefine some of those built-in definitions for
- various reasons. To use another unpacker program, for instance.
- Or to change some parameters.
-
-
- 4.2. How To Define Other Unpackers
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- There are two ways to modify the built-in definitions.
-
- You can grab a hex editor and change GUS.EXE directly. (The unpacker
- definitions were appended to GUS.EXE, so you'll find them at the end
- of the file.)
- If you do, please take note of the lengths of the strings as listed
- above in section 4.1. All strings occupy the specified number of
- characters. To achieve that, they were padded with spaces where
- necessary. When you edit them, make sure you retain the number of
- characters and do NOT change the funny looking character at the start
- of each string (that's in fact the string length indicator byte).
- If a particular parameter is not supported by a certain unpacker
- program, then you should edit the appropriate field to contain all
- stars.
-
- If you own a Turbo Pascal compiler v5.0 or later from Borland
- International, you can edit the file GUS_WCFG.PAS and re-compile it.
- This small program will update the configuration information at the
- end of GUS.EXE for you. Do *NOT* modify the record layout of that
- information, since GUS will not recognize it anymore if you do.
-
- Future versions of GUS may come with a complete setup program to
- edit and save a new configuration, or have a text configuration file.
- I haven't decided yet which way to go. If you have any comments on
- the subject, I would be glad to hear them. Please write to me via
- email or any other means.
-
-
- ╒═══════════════════════╕
- │ 5. GUS & OTHER SHELLS │
- ╘═══════════════════════╛
-
- Since GUS was first created, other authors have joined the club and
- released their own versions of a utility that identifies archive
- types and shells out to the appropriate unpacker programs.
-
- Some of those other shell programs come with source, others don't.
- Some have configuration files, others don't.
- Some are large, others small.
- Only one is GUS and all the others "ain't"! :-)
-
- Why should you use GUS?
-
- 1. GUS is small and fast. Other shell programs typically use a lot
- more memory than GUS does.
- 2. GUS provides you with all possible commands to allow not only
- automatic use, but also easy DOS command-line usage.
- 3. While scanning a file to determine the archive type, the
- identification bytes have to be investigated in a well-defined
- order. Only then, the program will not be fooled by things like
- archives within archives.
- GUS is the only program that does this flawlessly: it will never
- be fooled.
- 4. GUS has built-in code especially designed for archives that have
- their identification code at the end of the file. If such an
- archive has been transmitted by means of a protocol like
- X-modem, some junk may have been appended to the file to make it
- grow to the next 128 byte or even 1 K-byte boundary!
- GUS is the *only* program that will recognize an archive with
- appended junk because it can skip that while scanning.
- (At this time, this is only needed for DWC archives, but you
- never know...)
- 5. The HAP&PAH, HPack and DWC archivers require their compressed files
- to have the respective extension '.HAP', 'HPK' and '.DWC' or else
- they won't work with them. GUS knows this and will rename any such
- archive that does not have the proper extension before calling
- the dearchiver program and rename it back to the original name
- afterwards.
- (Well, actually, HPack 0.79 and higher have an option which
- will allow you to use another extension but since the renaming
- code was already in GUS for the previous version of HPack, I
- decided not to use this option.)
- 6. Because *I* wrote it! <grin>
-
-
- ╒════════════════════════════════╕
- │ 6. HOW GUS IDENTIFIES ARCHIVES │
- ╘════════════════════════════════╛
-
- GUS recognizes archives by searching for well-defined patterns in the
- archive file. Such a pattern can be from 1 to 7 bytes in length and
- it is extremely important that they be checked in the PROPER ORDER!
- That is what distinguishes GUS from all it's competitors: most
- programs do search for the right patterns (with the exception of the
- pattern for ZOO, which is almost always wrong), but don't do this in
- the proper order. That can result in faulty identifications,
- specifically when encountering nested archives (archives within
- archives).
-
- 6.1. Recognition patterns as used by GUS
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ArcType Offset Pattern Comment
- ------- ------ ------------ -------------------------------
- ARC 0 0x1A
- ARC+ 0 0x1A Method byte (offset 1) of all
- PAK entries needs to be scanned: if
- HYP >= 0x0A then PAK;
- >= 0x48 then HYP;
- == 0x14 then ARC+
- Note: PAK can also be recognized
- by locating the byte 0xFE at offset
- EOF-2, but GUS doesn't use that
- because it is less accurate than
- scanning the method bytes, which
- has to be done anyway for identi-
- fying ARC+ and HYP.
- For completeness, the record layout
- of an ARC archive will be given in
- paragraph 6.2.
- ARJ 0 0x60 0xEA
- HA 0 'HA' Offset 4 binary ANDed with 0xFC should
- yield 0x20. This is an additional check
- that GUS performs.
- DWC -3 'DWC' Offset -3 means the third LAST byte
- of the archive file.
- It is possible that some junk is
- present at the end of an archive,
- because of Xmodem transmissions for
- example.
- In order to avoid GUS not recognizing
- the archive because of this, the last
- 1028 bytes (or 343 triplets) are read
- into a buffer and if that buffer
- contains the string 'DWC', then we
- have a DWC archive.
- An additional check will be done,
- however. The `DWC' string will have
- to be the last item in a 27 byte
- structure of which the first two
- items are ArcStrucSize=27 (word size:
- 2 bytes) and DirStrucSize=34 (byte
- size) before GUS will accept the file
- to be a DWC archive.
- LZH 2 '-l??-' The '?' specifies a wildcard
- character.
- HAP 0 0x91 '3HF'
- HPK 0 'HPAK'
- UC2 0 'UC2' 0x1A
- ZIP 0 'PK' 0x03 0x04
- ZOO 20 0xDC 0xA7 0xC4 0xFD
- Most other programs search for the
- string 'ZOO' at the front of the
- archive, but that is wrong! Only
- the ZOO archives made using Rahul
- Dhesi's program would be recognized
- this way. ZOO archives made by an
- Amiga or a computer running Unix
- would not necessarily be recognized!
- SQZ 0 'HLSQZ'
- RAR 0 'Rar!' 0x1A 0x07 0x00
-
-
- 6.2. Record layout of ARC/ARC+/PAK
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- The record which describes each archive entry:
- .--------------------------------------------------.
- |var |
- | ArcHeader : record |
- | Marker: Byte; |
- | Method: Byte; |
- | Name : array [1..13] of char; |
- | Size : DWord; |
- | Stamp : DWord; |
- | CRC : Word; |
- | Length: DWord; |
- | end; |
- `--------------------------------------------------'
-
- Procedure to scan all archive entries:
- .--------------------------------------------------.
- |begin |
- | seek(F, 0); |
- | Done := false; |
- | YieldARC := ARC; |
- | repeat |
- | {$I-} |
- | blockread(F, ArcHeader, sizeof(ArcHeader)); |
- | {$I+} |
- | if IOresult = 0 |
- | then begin |
- | if ArcHeader.Method >= PAKid |
- | then begin |
- | Done := true; |
- | YieldARC := PAK; |
- | if ArcHeader.Method >= HYPid |
- | then YieldARC := HYP |
- | else if ArcHeader.Method = ARPid|
- | then YieldARC := ARp |
- | end |
- | else MoveFilePtr(F, ArcHeader.Size); |
- | end |
- | else Done := true |
- | until Done |
- |end; |
- `--------------------------------------------------'
-
- This is of course all in Turbo Pascal, the language in which GUS was
- written. The above are in fact literal excerpts from GUS's source
- code.
-
-
- 6.3. How GUS identifies SFX (self-extracting) archives
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- The basic principle is simple. A self-extracting archive consists of an
- extraction program in EXE form followed by the archive itself as
- appended data.
- The header of an EXE file contains information to determine the size of
- the EXE portion of the file and hence the offset where the appended data
- starts.
- This proved to be true for all archive types, except for SFXs made by
- MKSARC, the ZIP/sfx as used in PKLTE115.EXE and the ZIP/sfx for OS/2.
- GUS has those offset values hardcoded.
- Should you encounter other self-extracting archive types which GUS
- doesn't recognize, please let me know. Don't forget to mention,
- however, by which program those self-extractors were made.
-
-
- 6.4. Mandatory order for scanning recognition patterns
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 1 - RAR
- 2 - SQZ
- 3 - ZIP
- 4 - HPK
- 5 - UC2
- 6 - HAP
- 7 - ZOO
- 8 - LZH
- 9 - HA
- 10 - ARJ
- 11 - DWC
- 12 - ARC/ARC+/PAK/HYP
-
- This order is mandatory because it guarantees the greatest chance
- for a correct recognition.
- Every other order would increase the chance for a faulty result.
- This is also the reason why the archive specifications are still
- built into GUS and not given in a seperate configuration file
- (like the one used by Jeffrey Nonken's PolyXarc, for example):
- I still haven't found a good method to have GUS determine auto-
- matically in which order the patterns have to be scanned, if a
- possibility exists that new patterns would be added to the list.
- I can't expect the users to include new patterns in the proper
- order themselves, can I? Therefore, I don't think providing GUS
- with a CFG file is very important at this time. I see no problem
- for providing a new GUS when a new and exciting archiver is
- released.
-
- That's it folks! If you're curious: the Borland Pascal source for
- GUS is about 1100 lines in length. Those lines are `filled' in the
- same way as those of the procedure quoted above.
-
- *** NOTE: you may use the scanning and identification method as
- used by GUS and as described above in your own programs, but
- please be so kind and don't forget the reference indicating where
- you got the information!
-
-
- ╒═════════════════════╕
- │ 7. RUNTIME MESSAGES │
- ╘═════════════════════╛
-
- GUS may produce a number of messages while it's working.
- I will list all messages below, with an explanation what's wrong.
-
- [A] General information messages
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- MESSAGE: Child program returns exit code #
- -> this message is given when the invoked unpacker program returns
- control to GUS. It shows the errorlevel returned by the
- unpacker program. The "#" will be replaced by the actual
- exit code.
-
- [CHILD]: «unpacker_commandline»
- -> this is shown in Quiet mode (/Q switch) instead of the
- archiver's screen output. The «unpacker_commandline» will be
- replaced by just that.
-
- Extract: ALL files (XARC cannot extract specific files)
- -> this message is shown when the first four characters of the
- unpacker program definition string are "XARC". Any files to
- extract specified on the command-line will be ignored.
-
-
- [B] Warning messages (non-fatal errors)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- WARNING: multiple target directories defined -- will use the LAST one!
- -> you have defined more than one target path on the command-line.
- GUS warns you that it will ignore all paths but the last.
-
- WARNING: you need to use /D (capital!) to have the unpacked archive
- deleted.
- -> you have specified "/d" in lower case. For security reasons, GUS
- will only accept a capital D for the Delete switch.
- The unpacked archive will not be deleted.
-
- WARNING: unknown switch /X ignored
- -> you have specified a switch that GUS doesn't know. In the above
- warning message, the "X" will be replaced by the actual
- character (converted to upper case) that you used.
- GUS will continue but ignores this unknown switch.
-
- WARNING: a slash by itself is not a valid option -- ignored
- -> you have typed a slash "/" followed by a space or an end-of-line.
- GUS will continue and ignore this.
-
- WARNING: unknown parameter #9 «X» ignored
- -> you have typed something on the command-line that GUS can't
- decipher. The actual word you typed will be inserted instead of
- "X" in the above message, and the number of that parameter on
- the commandline will be shown instead of the "9" above.
-
- WARNING: can't open NUL device -- Quiet command ignored
- -> this occurs most often if the /Q (Quiet) command is used and when
- one or more TSRs were loaded with their output redirected to NUL.
- This yields a DOS sharing violation error, hence this message from
- GUS.
-
- WARNING: unable to determine archive type due to error
- while opening file
- -> for some reason, GUS can't open the file it has to investigate.
- Bummer! GUS will simply skip it and continue with the next one, if
- any.
-
- WARNING: «XXXXXXXXX.XXX» suddenly disappeared!
- -> GUS was working with an archive file which suddenly vanished.
- Perhaps you're using a multitask or multiuser system and another
- task deleted or moved the file? Anyway, GUS will report it and
- try to continue working as best as it can.
-
- WARNING: cannot create new filename for rename or move! (Disk full?)
- -> while trying to rename (like when an archiver needs a fixed
- extension) or move (like when a mailarchive couldn't be
- unpacked) a file, GUS increments the filename (in case of a
- fixed extension) or the extension (in case of a bad archive)
- when it at first doesn't succeed with the rename or move.
- If the filename or extension cannot be incremented anymore and
- no other options are left, GUS issues the above error message.
-
- WARNING: cannot erase incomplete target «XXXXXXXX.XXX»
- WARNING: cannot erase original after successful copy «XXXXXXXX.XXX»
- -> these warnings can occur when GUS was trying to move a file
- (normally a bad archive) to another drive, when the file has to
- be physically copied and after successful completion deleted.
- If something goes wrong during a physical copy, GUS will abort
- the copy and delete the incomplete target. If that isn't
- possible, the first warning is issued.
- If the copy was successful, GUS will delete the original file so
- only the identical target will remain. If the original cannot be
- deleted for whatever reason, GUS will issue the second warning.
-
- WARNING: moving bad archive HHHHHHHH.XXX to d:\badarcdir\
- -> in mail unpack mode (/M switch), GUS was unable to unpack an
- archive and warns you that it will be moved to the BADARC.GUS
- subdirectory that GUS creates in the mail inbound directory, or
- to the directory specified by the /B switch.
- This warning will also be shown without in normal mode, but only
- if /B was used.
- The actual name of the bad archive will be inserted in the
- message instead of "HHHHHHHH.XXX" and "d:\badarcdir" will be
- replaced by the path to the default or specified bad archive
- directory.
-
- WARNING: cannot erase unpacked archive!
- -> in mail unpack mode (/M switch) or if the Delete option (/D switch)
- was used, GUS is unable to delete the archive after it has been
- unpacked successfully.
- This more than likely means that the archive was marked
- Read/Only. You will have to unlock and delete it manually.
- As mailarchives are created fresh upon receipt, it is very
- unlikely that they would be marked R/O.
-
- WARNING: unsupported command -- will do normal extract instead
- -> you tried to perform an action not supported by the particular
- archiver defined within GUS (i.e., issue a /T [test] command
- with the HYPER archiver program).
- GUS warns you it will ignore that command and do a normal
- extract instead.
-
- WARNING: XXX type cannot be unpacked into embedded directories!
- -> the unpacker program has no option to enable using embedded
- directories or creating them, so all unpacking will be done
- into the current directory, since that is the only way.
-
- WARNING: XXX type cannot be garbled - ignoring password...
- -> you supplied an extraction password for an archive whose
- unpacker program does not support password-protection.
- GUS will continue the command while ignoring the /G switch.
- The "XXX" will be replaced by the actual archive type detected.
-
- WARNING: the password option cannot contain a `<' character - IGNORED.
- -> this warning message is of course not possible when using GUS
- from the DOS commandline, since DOS will interpret all `<`, '>'
- and '|' symbols first, providing GUS with arguments not
- containing those symbols.
- If GUS is called from another program, it is of course possible
- to include this type of illicit symbols in various commands or
- options. If you do, this warning will be given.
-
- WARNING: can't rename fixed extension back to original, leaving as is...
- -> GUS had to rename an archive to a name with the fixed extension
- required by archivers like DWC, HAP&PAH or HPACK and now it can't
- rename the file back to the original name. This can normally only
- happen in a multitasking environment, for instance when the archive
- file was renamed, moved or deleted before GUS could rename it back.
- GUS issues this error message and leaves the file as it was.
-
- WARNING: switching to ARC type program for directory of A7+ archive
- -> if the program XARC is configured for handling A7+, GUS will
- switch to the archiver program configured for the ARC type for
- viewing the archive contents (directory), since XARC has no
- command to do it and both PKUNPAK and SEA's ARC 6.02 will list
- the directory of an ARC+ archive just fine.
-
- WARNING: error locating directory XXX
- will unpack in current directory.
- -> You specified a target directory GUS was unable to find. The
- target path specification will be ignored and the unpacking will
- be done in the current directory.
-
- WARNING: «XXX» is no archive file or a type unkown to GUS!
- -> GUS encountered a file that is not one of the known archive
- types. GUS will continue with the next file, if there is one.
- "XXX" will be replaced by the actual archive name.
- GUS will not abort, but if this was the LAST archive processed
- then it will return errorlevel 222.
-
-
- [C] Fatal error messages
- ~~~~~~~~~~~~~~~~~~~~~~~~
- >ERROR<: cannot read configuration information!
- MESSAGE: aborting with exit code 255...
- -> GUS complains it can't find the configuration information at the
- bottom of its EXE file. This means something is terribly wrong
- with that EXE file. You better delete it and get the original
- release archive unpacked again! (You *did* save that one,
- didn't you?)
-
- >ERROR<: DOS couldn't execute «XXX» due to: YYY
- -> GUS was unable to load and execute the specified child program.
- The path and name of that child program will be inserted in the
- error message instead of "XXX" and the reason will be shown
- instead of "YYY". That reason will be one of 9 possible
- problems described in section 3.1. "General Usage under DOS",
- EXIT CODES. If the error code returned by DOS should be unknown
- to GUS, it will display "DOS ERROR" followed by the error number
- instead.
-
- >ERROR<: no such file(s)!
- -> GUS was started with an archive filename specification, but no
- such file could be found. GUS will abort with errorlevel 221.
-
- >ERROR<: no such mail directory!
- -> you specified a mail inbound directory (/M switch) that GUS was
- unable to locate. GUS will end with errorlevel 220.
-
-
- ╒═════════════════════╕
- │ 8. ACKNOWLEDGEMENTS │
- ╘═════════════════════╛
-
- + PKUNPAK FAST! Archive Extract Utility Version 3.61 08-02-88
- Copyright (c) 1986-1988 PKWARE Inc. All Rights Reserved.
-
- + PKUNZIP (R) FAST! Extract Utility Version 2.04g 02-01-93
- Copr. 1989-1993 PKWARE Inc. All Rights Reserved. Shareware Version
- PKUNZIP Reg. U.S. Pat. and Tm. Off.
-
- + XARC - to decompress a standard ARC Format Archive, Ver 7.1,
- October, 1990
- Copyright 1990 by System Enhancement Associates, Inc.;
- ALL RIGHTS RESERVED
-
- + ARJ 2.41 Copyright (c) 1990-93 Robert K Jung. Jun 03 1993
- All Rights Reserved. U.S. Patent No. 5,140,321 and patent pending.
-
- + DWC - Archive utility, Release 5.10, Created 3/07/90
- (C) Copyright 1986-90 by Dean W. Cooper; All rights reserved.
-
- + HA 0.999ß Copyright (c) 1995 Harri Hirvola
-
- + Hamarsoft (R) Hap&Pah TM 3.00
- Copyright (C) 1992 By Harald Feldmann.
- Publicly Distributed evaluation copy.
-
- + HPACK - The multi-system archiver Version 0.78a0 (shareware version)
- For Amiga, Archimedes, Macintosh, MSDOS, OS/2, and UNIX
- Copyright (c) Peter Gutmann 1989 - 1992. Release date: 1 Sept 1992
-
- + Hyper - Pack Utility 2.5
- Copyright (c) 1989,1990 P. Sawatzki and K.P. Nischke
-
- + LHA version 2.55b Copyright (c) Haruyasu Yoshizaki, 1988-92
-
- + Pak 2.51 Copyright 1988-90 NoGate Consulting
-
- + RAR 1.52 Copyright (c) 1993-94 Eugene Roshal 17 August 1994
- Registered to Johan Zwiekhorst
-
- + SQZ -- Squeeze It(1.08.3), Jan 24 1993, Copyright J I Hammarberg
-
- + ░███ ░███ ░████ UltraCompressor II (tm) revision 2
- ░█ ░█ ░█ ░█ ░█ "The new way of archiving."
- ░█████ ░█ ░████ -NL "Fast, reliable and superior compression."
- ░█ ░█ ░█ ░█ ──────────────────────────────────────────────────
- ░█ ░█ ░███ ░█ (C) Copyright 1994, Ad Infinitum Programs,
- all rights reserved
-
- + Zoo archiver, Version 2.10 (1991/07/09 02:10:34)
- (C) Copyright 1991 Rahul Dhesi -- Noncommercial use permitted
-
- + ARCE Copyright (c) 1986-92 Vernon D. Buerg.
- Extract ARC files, Version 4.1a, 4/12/92. All rights reserved.
-
- + Conference Mail - Revision: 4.07 by Bob Hartman, FidoNet Node 132/101
- (C) Copyright 1986, 1987 by Spark Software Inc. All rights reserved.
-
- + █ █ █▀▀▀▀█ █ █ █▀▀▀▀▄ █ █ ▀▀█▀▀
- █ ▄▀ █ ▀▄ ▄▀ █ █ █ █ █
- █▄▄█ █▄▄▄ ▀█▀ █▀▀▀▀▄ █ █ █
- █▌ ▀▄ █▌ █▌ █▌ █▌ █▌ █ █▌
- ██ ▐█ ██▄▄██ ██ ██▄▄▄█ ██▄▄▄█ ▄▄██▄
- ╓──────────────────────────────────────────╖
- ║ Keyboard driver U.S. International ║
- ╙──────────────────────────────────────────╜
- Copyright (C) 1994 and written by
- Johan Zwiekhorst
- ·ALL·RIGHTS·RESERVED·
- ═════════════════════════════════════
- version 2.02
- ─────────────────────────────────────
- KEYBoard driver U.S. International (KEYBUI)
- will allow you to type accented characters,
- draw text graphic characters, blank your
- screen and more! All this in a very easy way
- and with a standard U.S. QWERTY keyboard.
- Takes only 1.5K while resident.
-
- + Scan V.2.1.0 Copyright (c) McAfee, Inc. 1994. All rights reserved.
-
-
- ╒═════════════════════╕
- │ 9. REVISION HISTORY │
- ╘═════════════════════╛
-
- Ver. Comment
- ~~~~ ~~~~~~~
- --> 2.00 [will be released in a few months, probably mid 1995]
- or should I call it GUS'95 and keep pushing back the
- release date each few months? :-)
- = Please write to me and let me know what new features you would
- like to see in GUS. Ideas so far:
- + archiver output in a pop-up window;
- + a full-screen version of GUS with nice colours;
- + interactive full-screen GUS with pull-down menues
- (this would make it a direct competitor for SHEZ, but I'm
- not sure if I want to devote my time to this since I think
- SHEZ is very good);
- + OS/2 version;
- + Win/NT or Win32 version - if people want it. So far, no
- requests for this.
- = So let me know what you think!
-
- 1.95 [15-Mar-1995]
- ! This is the _LAST_ version that will run on Intel 8088 or
- 8086 CPUs! For all versions hereafter, you will need at
- least a NEC V20 or Intel 80188 (or equivalent) CPU.
- + Some people want to redirect GUS' output to a logfile and
- have asked me to provide for a more modest title screen for
- GUS. So here it is. In case of redirection, the big header
- will remain on screen while a small one is written to the
- target device or file.
- * New: people who register will now receive a "personalized"
- version of GUS.
- * New: /S will invoke a virus detector in order to scan
- the freshly unpacked files for viruses.
- * New: /Bdir will move bad or unknown archives to the specified
- directory. Attention! Files resulting from an abrupted unpack
- will not be deleted by GUS.
- Thanks to Vic Bates (2:250/143.16) for his suggestions.
- ! GUS will from now on be released in another archive format.
- I used LZH thusfar because it is cheap (as in free) and has a
- very good compression. Unfortunately, it doesn't have
- authenticity verification. So I waited until another archiver
- appeared on the scene which would compress better than LHA,
- have authenticity verification and a FREE unpack program.
- RAR meets these requirements. Therefore, GUS will from now on
- be released in a self-extracting RAR archive with authenticity
- verification and archive lock enabled. Any tampering with the
- archive will remove the authenticity OK message.
- The self-extraction code will of course make the archive file
- size larger than it should be, but since RAR is a very new
- archiver I didn't want to assume everyone would have the
- UNRAR.EXE or RAR.EXE programs in their possession. If RAR
- becomes as widespread as ZIP or LZH, I will release future
- versions of GUS in a non-sfx RAR archive.
-
- 1.91 [05-Oct-1994]
- - While unpacking mailarchives, GUS would return errorlevel 0 if
- the archive type could not be detected or if there was
- something else wrong and the unpacker program didn't report
- it. This could cause the mailprocessor to delete an
- unprocessed file. Fixed. GUS will now return errorlevel 222 if
- the _last_ file encountered could not be handled properly.
- If GUS is dealing with mailarchives (/M switch), unknown types
- will be handled the same as bad mailarchives and thus moved to
- the special BADARC.GUS subdirectory.
- Thanks to Gerard van der Land (2:2802/110) for pointing this
- out to me.
- + Changed several messages from '>ERROR<' to 'WARNING' since
- they don't cause GUS to abort.
- + Changed the licence from 'freeware' to 'shareware'. Payment
- for non-commercial situations is still on a more or less
- voluntary basis, though.
-
- 1.90 [07-Aug-1994]
- * Supported the new Russian archiver RAR.
- It performs about comparable to the Dutch UC2 archiver.
- * Supported some new features of UltraCompressor II revision 2.
- - A system error would occur when GUS was used in an OS/2 DOS
- session and needed to shell out to one of the fixed extension
- archivers (DWC/HAP/HPK). That was due to a lack of stack space
- for GUS. Corrected. GUS now uses a stack of 8192 bytes.
-
- 1.80 [05-Feb-1994]
- * Supported the new Dutch archiver UltraCompressor II (UC2).
- It performs consistently better than either PKZIP or ARJ, but HA
- and HPACK are still the best compressors around (albeit very
- slow).
- * Added the '/V' (View archive contents) command. Originally, I
- wanted to implement my own archive lister. However, since I still
- don't have the exact layout for a couple of archive types, I
- didn't want to keep you waiting any longer and provided the lister
- by shelling out to the appropriate archiver.
- + The GUS help screen will now also be shown when the user types
- GUS /?, GUS -?, GUS /h, GUS -h, GUS /H or GUS -H.
- Suggested by Hans Siemons (2:512/149).
- - If the drive is full (0 bytes free), GUS is unable to move
- a bad mailarchive away. GUS v1.70 would check the drive space
- and abort the move if less than 32 bytes would be free.
- 32 bytes is indeed what's needed to create a new directory entry,
- but unfortunately this doesn't help much since DOS always needs
- the size of one cluster to allocate new space.
- This version of GUS will therefore check if at least the size of
- one cluster (or 256 bytes for HPFS volumes) is free.
- Error reported by Peter Smink (2:285/1).
- - GUS file /I will yield errorlevel 221 if the file doesn't exist,
- instead of errorlevel 1 reported by the previous version which was
- confusing (since it could also mean GUS found an ARC archive).
- Changed two errorlevels:
- ERROR ErrLev v1.70 ErrLev NOW
- ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^
- No Such Mail Directory! 0 220
- No Such File(s)! 1 221
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Problem reported by Kianusch Sayah-Karadji (2:310/3.80) and
- Alex Cleynhens (2:292/500).
- ! Just in case you were wondering: I'm using Borlands BPwO v7.0
- these days for compiling GUS. No, the sourcecode for GUS doesn't
- contain any OOP. I wanted to keep GUS small and OOP has a tendency
- to blow the size of EXE files to huge proportions.
-
- 1.70 [14-Apr-1993]
- * Added support for the Dutch HAP archive format, which compresses
- at least 10% better than PKZIP v2.04.
- * Added support for the Finnish HA archiver, which beats PKZIP
- v2.04 by more than 20%!
- * Added the "/D" or Delete option.
- * Added detection of SFX (self-extracting) archives.
- GUS will recognize all EXE variants of the known archive types.
- Note: GUS can't handle COM self-extractors made by LHarc 1.xx,
- only the EXE sfx version.
- - If the drive is full (0 bytes free), GUS is unable to move
- a bad mailarchive away. It would take quite some time before
- GUS would give up trying, though. Fixed: GUS will check
- the drive space and abort the move if less than 32 bytes are
- free. (32 bytes is what's needed to create a new directory entry.)
- - If a file could not be opened for the purpose of determining
- the archive type, a runtime error 103 resulted. Fixed.
- Added a message: «WARNING: unable to determine archive type due
- to error while opening file».
- - Some people experienced strange `runtime 162' errors.
- Here's what happened...
- GUS tried to open the NUL device and create it. Some environments
- may have objected to that.
- I changed the code so that the NUL device is opened for writing
- only (no creation) and only if the /Q option is used, not always
- like before.
- This still caused some systems to yield that runtime error, so I
- added an error check and disabled the Quiet mode in case the NUL
- device cannot be opened. That should solve the `runtime 162'
- problem once and for all...
- Added a message: «WARNING: can't open NUL device -- Quiet command
- ignored».
- (This problem appeared mostly with systems that loaded TSRs and
- redirected their output to the NUL device. That causes DOS to
- open but never close the NUL device, so when GUS tries to open
- it, a sharing violation (runtime 162) occurs.)
- Thanks to Wim Van Sebroeck, 292/862 and Bert Hubert, 2:281/506.40
- for assisting me in finding a fix for this.
-
- 1.61 [21-Sep-1992]
- - Fixed a bug which caused GUS to use the wrong archive name
- when operating with an archiver that requires a fixed archive
- extension (DWC and HPK at this time).
-
- 1.60 [20-Sep-1992]
- * Added support for the HPACK archiver from Peter Gutmann, which
- makes the absolutely smallest archives at this time.
- * Added support for the Swedish SQZ archiver, which compresses
- better than ARJ 2.30 or the new PKZIP 1.93a!
- + Previously, the first three archive types were: ARC (#1), ARJ
- (#2) and ARC+ (#3). From now on, ARC+ will be #2 and ARJ #3.
- This is more logical. (The reason for the previous order was
- that GUS uses the abbreviation ARp internally for ARC+, and
- ARp comes after ARJ alphabetically.)
- - Due to a string length mismatch, GUS couldn't tell whether
- UsePath or UsePassword options were supported or not. The
- UsePath problem was reported by Wim Van Sebroeck (2:292/862)
- and by checking that, I discovered that the same was true for
- the UsePassword option. Corrected.
- + Added code to allow the Path option to replace a command
- instead of being added to it. (Indicated by `<' as the first
- character in the Path option in GUS_WCFG.PAS)
- Only needed for ARJ and SQZ at this time. (The previously used
- `e -jf' for ARJ doesn't seem to work equal to `x', so that was
- changed.)
- - GUS `forgot' about the specification indicating which files had
- to be extracted, once an ARC+ type archive had been worked on.
- Reported by Wim Van Sebroeck (2:292/862) and fixed.
- - If the specified target directory ended with a backslash (\),
- GUS wouldn't recognize it as the target directory. Reported by
- Wim Van Sebroeck (2:292/862) and fixed.
- + Extract command for ARJ changed from `e -n' to `e -uy' and
- modified some other archiver parameters in order to make the
- behaviour of various archiver programs more homogenious.
- GUS without /R option:
- (1) XARC and HYPER will ask you if they should overwrite older
- files. Unfortunately, these programs have no command
- options to work in batchmode and avoid this.
- (2) HPACK will never overwrite older files because it doesn't
- have an option for this.
- (3) all other archivers will overwrite older files and skip
- the rest.
- GUS with /R will cause existing files always to be
- overwritten.
- + If someone would combine several real commands on the GUS
- commandline, the effects might not be what one desires.
- Example: GUS * /T /R would start unpacking when one would
- expect it to ignore the replace command and do a test only.
- So I have changed the behaviour. The /T command now has priority
- over all other commands. This means that if you specify multiple
- commands, the /T (test) command will be executed and all others
- ignored. If you specify /P and /R, the /P has a higher priority
- and will be executed. The /R will be ignored. The priority of a
- command increases if it can do less damage. So the priority order
- for the GUS commands is in descending order: /I /T /P /R
- (remember: the other switches are options, not commands!).
- This problem was discovered after a tip by Alex Cleynhens
- (2:292/500).
- + Additional check for DWC archives. Apart from the string `DWC'
- in the last 1K of the file, it is now required that this string
- is the last item in a 27 byte structure for the file to be
- identified as a DWC archive.
- - GUS reported a runtime error when trying to rename an archive to
- a fixed extension and if the new name existed already. Reported
- by Wim Van Sebroeck (2:292/862). Fixed: the name is now
- incremented. Modified the routine which moves bad mailarchives
- to the BADARC.GUS subdirectory as well: if a file with the
- same name already exists in the BADARC.GUS subdirectory, the
- extension of the file to be moved is incremented.
- - GUS had a problem if the target directory was a root directory.
- In that case, it specified only the drive instead of the root
- directory. Reported by Wim Van Sebroeck (2:292/862). Fixed.
- - HPACK seems to require that its archives have a fixed extension
- of .HPK (like DWC does). GUS directory /M /T doesn't move bad
- archives into the BAD_ARC.GUS directory. Reported by Peter Smink
- (2:285/1). Fixed.
- ! Various changes to the documentation.
-
- 1.50 [15-Feb-1992]
- * Added the /N (/5) switch to prevent GUS using or creating
- paths embedded within archives.
- + Made this switch automatic while working with mail archives
- (/M). Thanks to John Lots (2:512/36.3@fidonet.org) and Eef
- Hartman (2:281/603.5) for suggesting this and detecting the
- problem with this in GUS 1.40.
- /N is now also automatically invoked with /P and /T.
- + Changed the way the configuration information is stored a bit,
- since there was a useless amount of space being reserved for
- the "Unknown" type, which of course shouldn't have been saved.
- - Fixed a minor problem which caused a runtime error when
- GUS.EXE was given a read/only attribute. Thanks to Rob
- Essers (2:283/406.2) for reporting this.
- ! Cleaned up the batchfile listing in section 3.3 a bit.
- Thanks to Roelof Heuvel (27:3331/5000@signet.ftn) for the
- suggestion.
- - Fixed a minor problem which caused GUS to not append '.*'
- to a filename given without an extension when the pathame
- would contain a dot somewhere. Thanks to Hans Siemons
- (2:285/214@fidonet.org) for reporting it.
- - Because of a space inserted between the appropriate switch to
- supply a password to an unarchiver and the actual password it-
- self, encrypted archives could never be unpacked. This is now
- fixed.
- ! Made minor modifications for PKUNZIP 2.00, due to some changes
- in the way that one handles its command options.
- - The `use path' option was always supplied with the ZOO unpack
- commands. Corrected.
-
- 1.40 [25-Jun-1991]
- + Removed MDCD archive support again, since nobody was likely
- to use it -- unless you're looking for the worst performing
- archiver ever, of course.
- * Added support for the new LHA version 2 archiver from Yoshi,
- which succeeds LHARC. The previous version of GUS could
- already handle the new compression, but I didn't expect the
- name of the program to be changed.
- * Added support for the ARJ archiver program from Robert K.
- Jung, which yields nearly always the best compression and
- has a lot of features.
- * Added support for the HYPER archiver program from Germany,
- which seems to outperform every other archiver on 600..800K
- logfiles ONLY. Weird.
- * Added support for ARCfiles made by the new ARC version 7
- compressor from SEA. At this time, only one public domain
- extractor is available, which unfortunately lacks almost
- every feature GUS has to offer.
- My thanks to Donn Bly (1:236/7@fidonet.org) and Jeffrey
- Nonken (1:273/715@fidonet.org) for providing me with all the
- information on the ARC7+ archive format and the XARC
- program.
- ! GUS is now fully commandline compatible with Vernon Buerg's
- ARCE program. All of ARCE's switches are supported - except
- for /5, which prevents ARCE from creating subdirectories
- contained within ARCfile entries.
- * GUS provides two extra options: /I will identify an archive
- type by means of the exitcode (errorlevel) and /M will
- unpack and delete mailarchives in Fidonet Technology
- Networks.
- - BUGFIXES:
- = cleaned up handling zero-length and read/only files.
- From now on, GUS won't abort with a runtime error on
- those.
- = you could only specify one single file to extract on GUS's
- commandline, although the help screen and manual suggested
- you could give more than one filespec.
- That's also corrected now, so you can indeed specify
- multiple files.
- * OTHER IMPROVEMENTS:
- = the code which detects the archive type has been completely
- re-written and now is a *lot* faster than before!
-
- 1.31 [1990]
- ! This version was never released, but mentioned in the
- documentation of the ARCA*Simulator v2.31 (ASIM_231.LZH).
-
- 1.30 [1989]
- ! This version was never released, but mentioned in the "Latest
- Software Versions" column of the FidoNews magazine.
-
- 1.20M [1989]
- * Added MDCD archives, corrected an error which made GUS not
- recognize uncompressed file entries in an LZH archive, made sure
- the new compression method of PAK is supported, added features to
- allow selection of files and target directory for unpacking.
- This is a maintenance release, hence the 'M' behind the version
- number.
-
- 1.10 [1989]
- * Added LZH archives, and changed the way DWC archives are
- identified in order to identify them even if up to 1K of rubbish
- is appended to the end of a DWC archive. This is useful for DWC
- archives which have been transferred by means of an Xmodem
- protocol.
-
- 1.00 [1989]
- ! Base version. (Turbo Pascal 5.0)
- _______________________________________________________________________(eof)__
-